# 第五章  if语句
# 在本章中，你将学习条件测试，以检查你感兴趣的任何条件
# 你将学习简单的if语句，以及如何创建一系列复杂的if语句来确定当前到底处于什么条件下
# 5.1 一个简单的示例
# 下面的示例中演示了如何使用if语句来正确地处理特殊的情形。假设你有一个汽车列表，想将其中每辆汽车的名称打印出来
# 对于大多数汽车，应以首字母大写的方式打印其名称，但是汽车名’bwm‘ 应以全大写的方式打印
# 下面的的代码遍历整个列表，并以首字母大写的方式打印其中的汽车名，以全大写的方式打印’bwm‘

cars = ['audi', 'bmw', 'subaru', 'toyota']

for car in cars:
    if car == 'bmw':
        print(car.upper())
        # 如果名称是 bmw，就大写全部字母
    else:
        print(car.title())
        # 否则仅大写首字母

##### 5.2 条件测试
# 每条if语句的核心都是一个值为True 或 False 的表达式，这种表达式称为条件测试
# Python 根据条件测试的值，来决定是否执行if 语句中的代码

# 5.2.1 检查是否相等  ==
# 大多数条件测试将一个变量的当前值与特定的值进行比较。最简单的条件测试检查变量的值是否与特定的值相等：

# 5.2.2 如何检查是否相等时忽略大小写
# 在Python 中检查是否相等时是区分大小写的

# 如果大小写很重要，这种行为有其优点。但如果大小写无关紧要，只想检查变量的值，可先将变量的值转换为全小写的，在进行比较

# 使用方法 .lower()

# 5.2.3 检查是否不等

# 要判断两个值是否不等，可使用 != 不等运算符

# 5.2.4 数值比较
# 检查数值非常简单
age = 18
if age == 18:
    print("你已经成年了！")

# 条件语句中还可以包含各种数学比较，如小于、小于等于、大于、大于等于

# 5.2.5 检查多个条件
# 你可能想同时检查多个条件。例如，有时候需要在两个条件都为True时才执行相应的操作，有时候只要求一个条件即可
# 在写情况下，关键字 and 和 or 可助你一臂之力

# 01  使用and 检查多个条件
# 要检查两个条件是否都为 True，可使用关键字and 将两个条件测试合二为一
# 检查两个人是否都不小于 21 岁：

age_0 = 22
age_1 = 18
if (age_0>=21) and (age_1>=21):
    print("True")
else:
    print("False")

# 02 使用or 检查多个条件

# 关键字or 也能够让你检查多个条件，但只有满足其中一个条件就能通过整个条件测试。
# 当且仅当所有条件都没有通过时，表达式才为 False

# 5.2.6 检查特定的值是否在列表中
# 有时候，执行操作前必须检查列表中是否包含特定的值。
# 例如，在结束用户注册过程之前，需要检查它提供的用户名是否已在用户名列表之中
# 在地图程序中，需要检查用户提交的位置是否在已知位置的列表中

# 要判定这些特定的值是否在列表中，可以使用关键字 in

requested_toppings = ['mushrooms', 'onions', 'pineapple']
if 'mushrooms' in requested_toppings:
    print("True")
else:
    print("False")

# 5.2.7 检查特定的值是否不在列表中 使用关键字 not in

banned_users = ['andrew', 'carolina', 'david']
user = 'marie'

if user not in banned_users:
    print(user.title()+", you can post a response if you wish.")
    #print(f"{user.title()}, you can post a response if you wish.")
